home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 / Aminet - June 1993 [Walnut Creek].iso / usenet / sources / volume90 / util / kill2090 / part01
Encoding:
Internet Message Format  |  1990-10-14  |  38.8 KB

  1. Path: abcfd20.larc.nasa.gov!amiga-request
  2. From: amiga-request@abcfd20.larc.nasa.gov (Amiga Sources/Binaries Moderator)
  3. Subject: v90i279: Kill2090 - reboot, toggle ntsc/pal mode and disable autoconf boards, Part01/01
  4. Reply-To: "John Davis,chem dept, UoC NZ" <CHEM194@canterbury.ac.nz>
  5. Newsgroups: comp.sources.amiga
  6. Message-ID: <comp.sources.amiga:v90i279@abcfd20.larc.nasa.gov>
  7. Date: 14 Oct 90 18:24:14 GMT
  8. Approved: tadguy@uunet.UU.NET (Tad Guy)
  9. X-Mail-Submissions-To: amiga@uunet.uu.net
  10. X-Post-Discussions-To: comp.sys.amiga
  11.  
  12. Submitted-by: "John Davis,chem dept, UoC NZ" <CHEM194@canterbury.ac.nz>
  13. Posting-number: Volume 90, Issue 279
  14. Archive-name: util/kill2090/part01
  15.  
  16. [ uuencoded executable and icons enclosed  ...tad ]
  17.  
  18. a suite of programs, that will reboot you amiga, and optionally toggle
  19. the machine to NTSC/PAL ( if you have the ECS Agnus fitted ) and also
  20. optionally disable ALL autoconfig boards ( hopefully lessens the chance
  21. of a virus/trojan horse stomping your auto-mounting HD ).
  22.  
  23. #!/bin/sh
  24. # This is a shell archive.  Remove anything before this line, then unpack
  25. # it by saving it into a file and typing "sh file".  To overwrite existing
  26. # files, type "sh file -c".  You can also feed this as standard input via
  27. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  28. # will see the following message at the end:
  29. #        "End of archive 1 (of 1)."
  30. # Contents:  kill2090.doc kill2090.s kill2090.s.uu kill2090.uu
  31. #   kill20900.uu kill20901.uu kill20902.uu kill20903.uu reset.ntsc.uu
  32. #   reset.ntsc0.uu reset.pal.uu reset.pal0.uu resetcode.txt
  33. #   resetcode.uu
  34. # Wrapped by tadguy@abcfd20 on Sun Oct 14 14:24:12 1990
  35. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  36. if test -f 'kill2090.doc' -a "${1}" != "-c" ; then 
  37.   echo shar: Will not clobber existing file \"'kill2090.doc'\"
  38. else
  39. echo shar: Extracting \"'kill2090.doc'\" \(6127 characters\)
  40. sed "s/^X//" >'kill2090.doc' <<'END_OF_FILE'
  41. XKill2090 v1.0 By John Davis, 26/08/1990
  42. X
  43. XWhat it does
  44. X------------
  45. XKILL2090/RESET  are  a  set  of  programs to reset the amiga thru software
  46. X(first  asking  the  user for confirmation), plus it will try to _DISABLE_
  47. XALL  the  autoconfig devices in your machine.  Since this will include the
  48. Xhard-disk  controller, this allows you to safely run software off floppies
  49. Xwithout  worrying  about  viruses  etc  getting at your autoboot/automount
  50. Xhard-disk.
  51. X
  52. XIf you have the 1mb Agnus, it will also toggle your machine to PAL or NTSC
  53. Xscreen  mode,  depending  on  which  version  you use (useful for games if
  54. Xyou've  got a PAL machine and useful for gaining screen area if you've got
  55. Xa  NTSC  machine).   If you ONLY wish to reboot to a different video mode,
  56. Xthen  the  RESET  version  will  do  that  alone  (without  disabling your
  57. Xhard-disk etc).
  58. X
  59. XSince  the  actual  screen toggle code is run from the cold capture during
  60. Xreboot,  this  means  it  will  work  even  with games which have a custom
  61. Xbootblock  (and hence can't have Nico Francois' PAL/NTSC bootblock used on
  62. Xthem).
  63. X
  64. XIn  spite  of the name, it will actually work with ALL autoconfig boards -
  65. Xthat includes the 2090a controller, the A590 hard-disk and ram system, the
  66. X2058/2052 ram boards and hopefully most 3rd party autoconfig devices.
  67. X
  68. XWhen  you reboot you should notice a pause, then the led will blink on/off
  69. X5  times  and  the  screen will go pink.  This lets you know Kill2090's at
  70. Xwork.
  71. X
  72. XIf  you've  run  KILL2090,  when  it's  finished, you should get the amiga
  73. Xasking  for  a workbench disk - your auto-boot hard-disk and all expansion
  74. Xmemory  is  now  disabled.   If  you've run RESET your machine should just
  75. Xreboot to the chosen video mode.
  76. X
  77. X
  78. XTechnical info
  79. X--------------
  80. X
  81. XThere  is  only  one source file for all four versions of the program, you
  82. Xjust  vary  a  pair  of conditional flags to build all four - so if you do
  83. Xmuck around with the source, remember to rebuild ALL versions.
  84. X
  85. XThe  actual  reset  routine used , is based on the example in the 1.3 rkm,
  86. Xwith  additional  mods  described  by  CATS  on  usenet  for 020/030 based
  87. Xsystems.
  88. X
  89. XThe  code  for  disabling  the auto-config boards is based on info gleaned
  90. Xfrom the 1.3 Hardware RKM auto-config docs.  Basically what it does is zip
  91. Xthru  all the boards it can find, and if they support SHUT-UP then it uses
  92. Xthat  to  make  them disappear, if they don't then it tells them to config
  93. Xout of the way at $200000.
  94. X
  95. XHence  by  the  time  exec  comes  up and looks for any autoconfig boards,
  96. Xthey're all gone (yes, it's a HACK - but it works :-).
  97. X
  98. XThis  version  is  hardcoded  to  config  the any boards boards that can't
  99. Xsupport  shut_up to $200000.  Earlier versions sent boards to $d00000, but
  100. Xif  you  had  a  2mb (or greater) memory board, this resulted in the board
  101. Xmemory  overlaying  the  custom  chips  (at  $dff000) and causing a system
  102. Xcrash.  Moving boards to $200000 means that even full 8mb boards are coped
  103. Xwith  correctly,  in  fact  that's the _only_ 8mb gap in the system memory
  104. Xmap.
  105. X
  106. XThe disable code is hooked to execbase's ColdCapture vector, this gets run
  107. XVERY  early in the reboot sequence (making it ideal for this application -
  108. Xit's  run  before even EXEC is up !!) plus the vector's auto-cleared after
  109. Xuse (so the patch doesn't hang around - again, exactly what I wanted)
  110. X
  111. X
  112. X
  113. XPossible problems
  114. X-----------------
  115. X
  116. XAs  I  said,  portions of this code are somewhat illegal in how they treat
  117. Xthe  system, I've tested the code on as wide a range of machines as I can,
  118. Xbut  there  is  no  way  I  can  guarantee  it  will  work on all systems.
  119. XBasically, for any setup, you're going to have to suck it and see...
  120. X
  121. Xspecific areas that could be a problem ...
  122. X
  123. X1) the autoconfig fakeout is 'illegal' ...  seems to work on all the systems
  124. X   I've  tried though ( 2000 r4.3 with 1mb and 2090a, 2000 r4.3 with 2090
  125. X   and  3mb  ram,  2500/30 w 2090a, 2500/30 w 2090, A500 w A590 and 3mb,
  126. X   2000 r4.3 w Ronin Hurricane 020 )
  127. X
  128. X2) it seems that some 2000s don't correctly remap the ROM on execution
  129. X   of  the  RESET  instruction,  or just ignore the RESET pulse ( hardware
  130. X   design fault ).  Not much I can do about that....
  131. X
  132. X3) as anyone who's followed the saga of 'the correct code to reset the
  133. X   amiga  in  software,  part mcmlxxiv' on Usenet will know, CBM themselves
  134. X   can't come up with code that will reliably reset ALL setups. This is
  135. X   the latest version of the reset code that doesn't resort to jumping
  136. X   to ROM ( here's CATS telling us off for rom-jumping, now they're doing
  137. X   it themselves :-).
  138. X
  139. X   The reset code should work on most machines ... EXCEPT on the 2500
  140. X   you will get the reset, followed by the led-blinking the 2630 does
  141. X   on startup (when you can select processors), followed by my code
  142. X   running (screen goes pink) and then you'll get a guru. Don't worry,
  143. X   just cancel the Alert and it'll still work fine .... since this
  144. X   happens ONLY on the 2630 (code works fine on a Ronin Hurricane board),
  145. X   I can only put this down to some weird interaction with the 2630 
  146. X   boot rom ... if anyone has code that PROPERLY resets the 2630 I'd
  147. X   love to see it.
  148. X
  149. X
  150. X
  151. XBug Reports
  152. X-----------
  153. X
  154. XIf  you  find either of the programs don't seem to work on your setup, let
  155. Xme  know,  so  as I can work out what I need to do to make this work on as
  156. Xwide a range of machines as possible - any and all feedback welcomed!
  157. X
  158. X
  159. Xyou can contact me at the following electronic addresses :-
  160. X
  161. Xbbs: "John Davis" on AmigaINFO BBS, NZ +3-3371-531 (24hrs, 2400/1200 baud)
  162. XInternet/UseNet: chem194@canterbury.ac.nz
  163. X
  164. Xor snail mail to
  165. X   
  166. X   John Davis
  167. X   Departmental Programmer
  168. X   Chemistry Department
  169. X   University of Canterbury
  170. X   Private Bag
  171. X   Christchurch
  172. X   New Zealand
  173. X
  174. X
  175. XFinally,  a  big thanks to all the people who helped with the Beta testing
  176. Xof this program by allowing me access to their hardware -
  177. X
  178. X   Terrence Blyth, Andrew King, Joe Begej, Dave Hassall, Stephen Webber,
  179. X   Pete Moore, Geoff McCaughan, Peter.B McIntyre, John Nettleton,
  180. X   John Bickers, Danny Neville
  181. X
  182. Xand   to   all   the  people  on  AmigaINFO  BBS  for  their  support  and
  183. Xencouragement.
  184. END_OF_FILE
  185. if test 6127 -ne `wc -c <'kill2090.doc'`; then
  186.     echo shar: \"'kill2090.doc'\" unpacked with wrong size!
  187. fi
  188. # end of 'kill2090.doc'
  189. fi
  190. if test -f 'kill2090.s' -a "${1}" != "-c" ; then 
  191.   echo shar: Will not clobber existing file \"'kill2090.s'\"
  192. else
  193. echo shar: Extracting \"'kill2090.s'\" \(7920 characters\)
  194. sed "s/^X//" >'kill2090.s' <<'END_OF_FILE'
  195. X; kill 2090 - by J Davis 08/1990
  196. X; ---------
  197. X;
  198. X; version 1.0 
  199. X;
  200. X; THIS MUST BE ASSEMBLED TO FORCELOAD TO CHIPMEM!!!
  201. X;
  202. X; very simple program to reboot 2000 with all autoconfig boards off
  203. X;
  204. X; this allows you to boot off floppies without worrying about
  205. X; rogue programs attacking your hard-disk
  206. X; 
  207. X; the drive is only killed until the next reboot - so ctrl-amiga-amiga
  208. X; will re-anable it
  209. X; 
  210. X; how it does it -
  211. X;                 this is basically a modified version of the 'official'
  212. X;                 reboot code in the rkm:hardware, with the addition of
  213. X;          a coldcapture routine that 'fakes out' all the expansion 
  214. X;          boards, stopping exec from seeing/using them
  215. X; 
  216. X;
  217. X; YES THIS IS A HACK!! It manipulates the system in a manner contrary
  218. X; to the rkm quidelines - so don't blame me if it doesn't work!! :-)
  219. X;
  220. X;
  221. X; changes for version .05(beta)
  222. X;
  223. X;    sends 5 flashes when cold capt code starts
  224. X;    back to brute force approach to finding all boards
  225. X;
  226. X; changes for version .06(beta)
  227. X;
  228. X;    now sends all boards that don't support shut_up to $200000
  229. X;    ( instead of $d00000 as before ). This gets around problems
  230. X;    with memory boards overlaying the custom chips and killing the
  231. X;    whole system
  232. X;
  233. X; changes for version 1.0 
  234. X; 
  235. X;    added code to switch super agnus to PAL/NTSC
  236. X;
  237. X;    by altering the conditional compilation switches Go_NTSC and
  238. X;    Kill_boards, you can set whether to switch to PAL or NTSC at
  239. X;    boot-time, and also whether to just reset, or kill exp boards
  240. X;    as well, giving four possible versions of this program
  241. X
  242. X
  243. X;===========================================================
  244. X; vary these flags to build all 4 possible versions
  245. X
  246. Xkill_boards    equ    0    ; set to 0 to just build reset program
  247. X
  248. Xgo_ntsc        equ    0    ; set to 1 will toggle superAgnus to NTSC
  249. X                ; set to 0 will toggle to PAL
  250. X
  251. X;=============================================
  252. X
  253. Xforbid        equ    -$084    ; offsets for various exec and int calls
  254. Xgetmsg        equ    -$174    ; saves long includes and compile times
  255. Xreplymsg    equ    -$17a
  256. Xwaitport    equ    -$180
  257. Xfindtask    equ    -$126
  258. Xautoreq        equ    -$15c
  259. Xopenlib        equ    -$228
  260. Xcloselib    equ    -$19e
  261. Xsupervisor    equ     -$01e    
  262. X
  263. Xattnflags    equ    $128    ; offset for execbase.attnflags word
  264. Xafb_68020    equ    1<<1    ; bit mask for 020 flag
  265. X
  266. Xpr_cli        equ    $0Ac    ; process cli flag offset
  267. Xpr_msgport    equ    $05c    ; process msgport offset
  268. X
  269. X; hisoft devpac and Argasm don't support the 010+ movec command!
  270. X; so we jam them in as consts instead
  271. Xmovec_cacr_d0    equ     %0000000000000010
  272. Xmovec_d0_cacr    equ    %1000000000000010
  273. X
  274. X;=========================================
  275. X
  276. X        section    main,code_c        ; make sure we're in CHIP
  277. X
  278. Xstartup:    move.l    $4,a6
  279. X        move.l    #0,a1
  280. X        jsr    findtask(a6)        ; find ourselves
  281. X
  282. X        move.l    d0,a4            ; save our process pointer
  283. X
  284. X        move.l    pr_cli(a4),d0
  285. X        bne    fromdos            ; was a DOS startup
  286. X
  287. X        ; was started from WB
  288. X
  289. X        lea    pr_msgport(a4),a0
  290. X        jsr    waitport(a6)        ; wait for startup msg
  291. X        lea    pr_msgport(a4),a0
  292. X        jsr    getmsg(a6)        ; get the wb msg
  293. X
  294. X        move.l    d0,wbmsg        ; save pointer to our startup msg
  295. X        move.l    #1,wb            ; flag we started from wb
  296. X
  297. Xfromdos:    lea    intuiname,a1
  298. X        move.l    #0,d0
  299. X        move.l    $4,a6
  300. X        jsr    openlib(a6)         ; open intuition lib
  301. X
  302. X        move.l    d0,a6            ; save ibase
  303. X        
  304. X        move.l    #0,a0            ; window to display in
  305. X        move.l    #bodyitext,a1        ; body text
  306. X        move.l    #yesitext,a2         ; postive text
  307. X        move.l    #noitext,a3          ; negative text
  308. X        move.l    #0,d0            ; pflags
  309. X        move.l    #0,d1            ; nflags
  310. X        move.l    #460,d2            ; width
  311. X        move.l    #60,d3            ; height
  312. X        jsr    autoreq(a6)        ; request user confirmation
  313. X
  314. X        cmp.l    #0,d0
  315. X        bne    reboot            ; user selected ok, kill!
  316. X
  317. X        ; user cancelled reboot
  318. X        
  319. X        move.l    a6,a1            ; close intuition lib
  320. X        move.l    $4,a6
  321. X        jsr    closelib(A6)
  322. X        
  323. Xexit:        move.l    wb,d0
  324. X        cmp.l    #0,d0            ; was this a CLI invocation
  325. X        beq    exit_dos
  326. X
  327. X        ; workbench exit
  328. X
  329. X        move.l    $4,a6
  330. X        jsr    forbid(a6)        ; lock out everyone else
  331. X
  332. X        move.l    wbmsg,a1
  333. X        jsr    replymsg(a6)        ; reply to Wbstartup msg
  334. X
  335. Xexit_dos:    move.l    #0,d0            ; return with return code 0
  336. X        rts            
  337. X
  338. X
  339. X
  340. X;=====================================
  341. X; the following does the actual reboot 
  342. X        
  343. Xreboot:        jsr    instcold        ; install coldcapture handler
  344. X                        ; exec will run coldcapt once and then
  345. X                        ; kill it - exactly what we want!    
  346. X    
  347. X        move.l    $4,a6             ; RESET must be run in Smode, so go to it
  348. X        move.l    #reboot_c,a5        ; code to run in supervisor mode
  349. X        jsr    supervisor(A6)        ; go into supervisor mode
  350. X
  351. X        cnop    0,4            ; longword align code
  352. X        
  353. Xreboot_c:    move.l    $4,a6
  354. X        btst.b    #afb_68020,attnflags+1(a6)
  355. X        beq    kill            ; is system 020/030 powered ?
  356. X
  357. X        ; if it is an 020 or 030, take extra steps for cache 
  358. X    
  359. X        dc.w    movec_cacr_d0       ; twiddle the cache control reg
  360. X        bset.l    #3,d0
  361. X        dc.w    movec_d0_cacr
  362. X     
  363. X         bra    kill
  364. X     
  365. X         cnop    0,4            ; long word align code
  366. X
  367. Xkill:        move.l    #$2,a1            ; where to jump to in rom
  368. X        reset
  369. X        jmp (a1)            ; now run reset code in rom
  370. X
  371. X
  372. X
  373. X;=======================================
  374. X; routine to install coldcapture handler
  375. X
  376. Xinstcold:    move.l    $4,a6            ; get execbase
  377. X        lea    cold,a0            ; get address of our coldcapt routine
  378. X        move.l    a0,$2a(a6)        ; set coldcapture vect
  379. X
  380. X        lea    34(a6),a0        ; start of checksummed area in execbase
  381. X        move.w    #$16,d0            ; number of checksummed words
  382. X        move.w    #$0,d1            ; clear counter
  383. X    
  384. Xsum:        add.w    (A0)+,d1        ; sum execbase and update checksum
  385. X        dbf    d0,sum
  386. X    
  387. X        not.w    d1
  388. X        move.w    d1,82(a6)        ; save fixed checksum
  389. X
  390. X        rts
  391. X
  392. X
  393. X;===========================================================================
  394. X; our actual cold capture handler, flashes led,zaps boards,toggles agnus etc
  395. X
  396. Xcold:        move.w    #$0f8a,$dff180    ; set screen colour to pink
  397. X
  398. X    IFNE     go_ntsc        ; go_ntsc=1 switch to ntsc
  399. X        move.w    #$00,$dff1dc    ; set NTSC mode on agnus
  400. X    ELSEIF
  401. X        move.w    #$20,$dff1dc    ; set PAL mode on agnus
  402. X    ENDC
  403. X
  404. X
  405. X        move.l    #9,d0            ; flash power led 5 times 
  406. X                        ; to let know we're running
  407. X
  408. Xlloop:        bchg    #1,$bfe001        ; toggle led
  409. X        move.l    #$ffff,d1
  410. Xlwait:        dbf    d1,lwait        ; delay
  411. X        dbf    d0,lloop
  412. X
  413. X
  414. X    IFNE    kill_boards            ; kill_boards=1, so add kill code
  415. X
  416. X        move.l    #$7,d1            ; max no boards we fix = 8 
  417. X
  418. Xbchk:        move.w    $e80008,d0        ; get flag byte from board
  419. X        not.w    d0            ; invert
  420. X        btst.l    #14,d0            ; see if board supports shut_up
  421. X        beq    shut_up            ; bit=0 means board shuts up ok
  422. X
  423. X        ; board doesn't support shut up, so 
  424. X        ; config board to $200000 (only gap big enough for 8mb
  425. X        ; boards)
  426. X    
  427. X        move.w    #$0000,$e8004a      ; fake board out to $200000
  428. X        move.w    #$2000,$e80048  
  429. X        
  430. X        bra    nboard            ; carry on
  431. X
  432. Xshut_up:    move.b    #$ff,$e8004c        ; tell the board to shut up
  433. X
  434. Xnboard:        dbf    d1,bchk            ; loop thru all boards
  435. X    ENDC
  436. X
  437. Xbexit:        jmp    (a5)            ; chain thru to rest of reset routine
  438. X    
  439. X;=============================================================
  440. X        
  441. Xwb:        dc.l    0            ; run mode flag 0=dos process 1=wbprocess
  442. Xwbmsg:        dc.l    0            ; where we save our workbench msg
  443. X
  444. Xintuiname:    dc.b    "intuition.library",0
  445. X
  446. X; stuff for our autorequester
  447. X
  448. Xbodyitext:    dc.b    0           ; front pen
  449. X        dc.b    1           ; back pen
  450. X        dc.b    0           ; draw mode
  451. X        dc.w    70           ; leftedge
  452. X        dc.w    6           ; topedge
  453. X        dc.l    0           ; textattr = default
  454. X        dc.l    bodytext1      ; actual text
  455. X        dc.l    bodyitext2     ; next
  456. X
  457. Xbodyitext2:    dc.b    0           ; front pen
  458. X        dc.b    1           ; back pen
  459. X        dc.b    0           ; draw mode
  460. X        dc.w    35           ; leftedge
  461. X        dc.w    15          ; topedge
  462. X        dc.l    0           ; textattr = default
  463. X        dc.l    bodytext2     ; actual text
  464. X        dc.l    0            ; next
  465. X
  466. X        
  467. Xyesitext:    dc.b    2        ; front pen
  468. X        dc.b    1        ; back pen
  469. X        dc.b    0        ; draw mode
  470. X        dc.w    4        ; leftedge
  471. X        dc.w    4        ; topedge
  472. X        dc.l    0        ; textattr = default
  473. X        dc.l    yestext        ; actual text
  474. X        dc.l    0        ; next
  475. X        
  476. Xnoitext:    dc.b    2        ; front pen
  477. X        dc.b    1        ; back pen
  478. X        dc.b    0        ; draw mode
  479. X        dc.w    4        ; leftedge
  480. X        dc.w    4        ; topedge
  481. X        dc.l    0        ; textattr = default
  482. X        dc.l    notext        ; actual text
  483. X        dc.l    0        ; next        
  484. X
  485. X        ; actual text for our requester
  486. X
  487. X    IFNE    kill_boards
  488. Xbodytext1:    dc.b    "Kill2090"
  489. X        ELSEIF
  490. Xbodytext1:    dc.b    " Reset"
  491. X    ENDC
  492. X        
  493. X        dc.b     " by J Davis, 08-1990 v1.0 "
  494. X
  495. X    IFNE    go_ntsc    
  496. X        dc.b    "NTSC"
  497. X    ELSEIF
  498. X        dc.b    "PAL "
  499. X    ENDC
  500. X        dc.b    0
  501. X
  502. Xbodytext2:    dc.b    "About to kill system, finish ALL disk activity",0
  503. X
  504. Xyestext:    dc.b    "Go ahead, make my day!",0
  505. Xnotext:        dc.b    "No, I was just kidding!",0
  506. X
  507. X        END
  508. END_OF_FILE
  509. if test 7920 -ne `wc -c <'kill2090.s'`; then
  510.     echo shar: \"'kill2090.s'\" unpacked with wrong size!
  511. fi
  512. # end of 'kill2090.s'
  513. fi
  514. if test -f 'kill2090.s.uu' -a "${1}" != "-c" ; then 
  515.   echo shar: Will not clobber existing file \"'kill2090.s.uu'\"
  516. else
  517. echo shar: Extracting \"'kill2090.s.uu'\" \(538 characters\)
  518. sed "s/^X//" >'kill2090.s.uu' <<'END_OF_FILE'
  519. Xbegin 666 kill2090.s.info
  520. XMXQ```0``````)P!.`"``'``%``,``0#`?7``````````````````````````;
  521. XM````!,,`P%+@`,![J(````"````````````````````````````@`!P``@`!;
  522. XM9<`#````````````!___^`?___@&$)(8!S.3.`<PQS@',Y,X!S"3.`?___@$E
  523. XM```(!___^`?_?[@'_O-X!_S-.`?Z,M@'_W^X!][S>`<DS3@/FC+8#WO]^`[WY
  524. XMF_@9)FGX'-&6^#____A____X#___^````````````````````````````>]MZ
  525. XMY@#,;,8`SSC&`,QLQ@#/;,8````&`___]@````8``(!&``$,A@`#,L8`!<TF_
  526. XM``"`1@`A#(8`VS+&`&7-+@"$`@X!"&0.!MF6'@,N:1X````^````_@____X#0
  527. XG___^``````````9C.F-E9``````(````#D9)3$5465!%/51E>'0`E
  528. X``
  529. Xend
  530. Xsize 354
  531. END_OF_FILE
  532. if test 538 -ne `wc -c <'kill2090.s.uu'`; then
  533.     echo shar: \"'kill2090.s.uu'\" unpacked with wrong size!
  534. fi
  535. # end of 'kill2090.s.uu'
  536. fi
  537. if test -f 'kill2090.uu' -a "${1}" != "-c" ; then 
  538.   echo shar: Will not clobber existing file \"'kill2090.uu'\"
  539. else
  540. echo shar: Extracting \"'kill2090.uu'\" \(540 characters\)
  541. sed "s/^X//" >'kill2090.uu' <<'END_OF_FILE'
  542. Xbegin 666 kill2090.doc.info
  543. XMXQ```0``````)P!.`"``'``%``,``0#`?7``````````````````````````;
  544. XM````!,,`P%+@`,![J(````"````````````````````````````@`!P``@`!;
  545. XM9<`#````````````!___^`?___@&$)(8!S.3.`<PQS@',Y,X!S"3.`?___@$E
  546. XM```(!___^`?_?[@'_O-X!_S-.`?Z,M@'_W^X!][S>`<DS3@/FC+8#WO]^`[WY
  547. XMF_@9)FGX'-&6^#____A____X#___^````````````````````````````>]MZ
  548. XMY@#,;,8`SSC&`,QLQ@#/;,8````&`___]@````8``(!&``$,A@`#,L8`!<TF_
  549. XM``"`1@`A#(8`VS+&`&7-+@"$`@X!"&0.!MF6'@,N:1X````^````_@____X#0
  550. XG___^``````````9C.F-E9``````(````#D9)3$5465!%/51E>'0`E
  551. X``
  552. Xend
  553. Xsize 354
  554. END_OF_FILE
  555. if test 540 -ne `wc -c <'kill2090.uu'`; then
  556.     echo shar: \"'kill2090.uu'\" unpacked with wrong size!
  557. fi
  558. # end of 'kill2090.uu'
  559. fi
  560. if test -f 'kill20900.uu' -a "${1}" != "-c" ; then 
  561.   echo shar: Will not clobber existing file \"'kill20900.uu'\"
  562. else
  563. echo shar: Extracting \"'kill20900.uu'\" \(1107 characters\)
  564. sed "s/^X//" >'kill20900.uu' <<'END_OF_FILE'
  565. Xbegin 666 kill2090.ntsc
  566. XM```#\P`````````!``````````!```"A0``#Z0```*$L>0````0B?`````!.Z
  567. XMKO[:*$`@+`"L9@``(D'L`%Q.KOZ`0>P`7$ZN_HPCP````9@C_`````$```&4Q
  568. XM0_D```&<(#P`````+'D````$3J[]V"Q`('P`````(GP```&N)'P```'6)GP`=
  569. XM``'J(#P`````(CP`````)#P```',)CP````\3J[^I+"\`````&8``#HB3BQYO
  570. XM````!$ZN_F(@.0```92PO`````!G```6+'D````$3J[_?")Y```!F$ZN_H8@K
  571. XM/`````!.=4ZY```!!BQY````!"I\````X$ZN_^(``"QY````!`@N``(!*6<`+
  572. XM``X``@C```.``F````(B?`````).<$[1+'D````$0?D```$P+4@`*D'N`"(PP
  573. XM/``6,CP``-)84<C__$9!/4$`4DYU,_P/B@#?\8`S_````-_QW"`\````"0AYQ
  574. XM``$`O^`!(CP``/__4<G__E'(_^PB/`````<P.0#H``A&0`@```YG```6,_P`>
  575. XM``#H`$HS_"```.@`2&````H3_`#_`.@`3%')_]).U0``````````:6YT=6ET(
  576. XM:6]N+FQI8G)A<GD```$```!&``8````````!_@```<(``0```",`#P``````K
  577. XM``(E``````(!````!``$`````````E0``````@$````$``0````````":P```
  578. XM``!+:6QL,C`Y,"!B>2!*($1A=FES+"`P."TQ.3DP('8Q+C`@3E130P!!8F]U+
  579. XM="!T;R!K:6QL('-Y<W1E;2P@9FEN:7-H($%,3"!D:7-K(&%C=&EV:71Y`$=O<
  580. XM(&%H96%D+"!M86ME(&UY(&1A>2$`3F\L($D@=V%S(&IU<W0@:VED9&EN9R$``
  581. XM`````^P````0`````````"P````V````/````%H```!@````9@```)X```"X3
  582. XH````R@```-8```$.```!N@```;X```'.```!X@```?8````````#\IX`E
  583. X``
  584. Xend
  585. Xsize 760
  586. END_OF_FILE
  587. if test 1107 -ne `wc -c <'kill20900.uu'`; then
  588.     echo shar: \"'kill20900.uu'\" unpacked with wrong size!
  589. fi
  590. # end of 'kill20900.uu'
  591. fi
  592. if test -f 'kill20901.uu' -a "${1}" != "-c" ; then 
  593.   echo shar: Will not clobber existing file \"'kill20901.uu'\"
  594. else
  595. echo shar: Extracting \"'kill20901.uu'\" \(1660 characters\)
  596. sed "s/^X//" >'kill20901.uu' <<'END_OF_FILE'
  597. Xbegin 666 kill2090.ntsc.info
  598. XMXQ```0`````!L@!!`"T`+``&``,``0#"DE@`PI-(`````/____\`````````0
  599. XM`````\,``````````````:(````V``````````````^@```````M`"L``@`!I
  600. XM<(`#```````````````````````````````````````'#QX\```-F;-F```(J
  601. XMD*%"````D*%".``!D+-"9``!$)Y"#``"$()"-``$$(1"1``,69AF9``/SS`\^
  602. XM.@````````````````````````````````#______^"``````""``````""`5
  603. XM`````"".`````""``````"".[N[N[B"``````"#______^#______^``````J
  604. XM`````````````````````````````````````````````````````````````
  605. XM`````````````````````````````````````````````````````````````
  606. XM`````````````````````````````````````````````````````````````
  607. XM`````````````````````````````````````````````````````````````
  608. XM``````````````````````````!______\!______\!______\!______\!_K
  609. XM_____\!Q$1$1$<!______\``````````````````````````````````````L
  610. XM`````````````````````````````````````````````````````````````
  611. XM`````````````````````````````````````````````"T`*P`"``'%0`,`C
  612. XM``````````````````````````````!^'/@````3"$P````1"$0````1"$0`S
  613. XM```3"$P````>"'@````2"$`````1"$`````1B$````!XW.``````````````%
  614. XM````````_@``````@@``````@@``````@@``````@@``````@@`````_@_@`"
  615. XM```@``@````@``@````@``@````@``@````_@_@`````@@``````@@``````>
  616. XM@@``````@@``````@@``````@@``````@@``````@@``````@@``````@@``0
  617. XM````@@``````@@``````@@``````_@``````````````````````````````$
  618. XM`````````````````````````````````````````````````````````````
  619. XM`````````````````````````````````````````````````````````````
  620. XM?```````?```````?```````?```````?```````?``````?__`````?__``$
  621. XM```?__`````?__``````?```````?```````?```````?```````?```````(
  622. XM?```````?```````?```````?```````?```````?```````?```````?```@
  623. X9````?```````````````````````````````\
  624. X``
  625. Xend
  626. Xsize 1150
  627. END_OF_FILE
  628. if test 1660 -ne `wc -c <'kill20901.uu'`; then
  629.     echo shar: \"'kill20901.uu'\" unpacked with wrong size!
  630. fi
  631. # end of 'kill20901.uu'
  632. fi
  633. if test -f 'kill20902.uu' -a "${1}" != "-c" ; then 
  634.   echo shar: Will not clobber existing file \"'kill20902.uu'\"
  635. else
  636. echo shar: Extracting \"'kill20902.uu'\" \(1106 characters\)
  637. sed "s/^X//" >'kill20902.uu' <<'END_OF_FILE'
  638. Xbegin 666 kill2090.pal
  639. XM```#\P`````````!``````````!```"A0``#Z0```*$L>0````0B?`````!.Z
  640. XMKO[:*$`@+`"L9@``(D'L`%Q.KOZ`0>P`7$ZN_HPCP````9@C_`````$```&4Q
  641. XM0_D```&<(#P`````+'D````$3J[]V"Q`('P`````(GP```&N)'P```'6)GP`=
  642. XM``'J(#P`````(CP`````)#P```',)CP````\3J[^I+"\`````&8``#HB3BQYO
  643. XM````!$ZN_F(@.0```92PO`````!G```6+'D````$3J[_?")Y```!F$ZN_H8@K
  644. XM/`````!.=4ZY```!!BQY````!"I\````X$ZN_^(``"QY````!`@N``(!*6<`+
  645. XM``X``@C```.``F````(B?`````).<$[1+'D````$0?D```$P+4@`*D'N`"(PP
  646. XM/``6,CP``-)84<C__$9!/4$`4DYU,_P/B@#?\8`S_``@`-_QW"`\````"0AY1
  647. XM``$`O^`!(CP``/__4<G__E'(_^PB/`````<P.0#H``A&0`@```YG```6,_P`>
  648. XM``#H`$HS_"```.@`2&````H3_`#_`.@`3%')_]).U0``````````:6YT=6ET(
  649. XM:6]N+FQI8G)A<GD```$```!&``8````````!_@```<(``0```",`#P``````K
  650. XM``(E``````(!````!``$`````````E0``````@$````$``0````````":P```
  651. XM``!+:6QL,C`Y,"!B>2!*($1A=FES+"`P."TQ.3DP('8Q+C`@4$%,(`!!8F]U0
  652. XM="!T;R!K:6QL('-Y<W1E;2P@9FEN:7-H($%,3"!D:7-K(&%C=&EV:71Y`$=O<
  653. XM(&%H96%D+"!M86ME(&UY(&1A>2$`3F\L($D@=V%S(&IU<W0@:VED9&EN9R$``
  654. XM`````^P````0`````````"P````V````/````%H```!@````9@```)X```"X3
  655. XH````R@```-8```$.```!N@```;X```'.```!X@```?8````````#\IX`E
  656. X``
  657. Xend
  658. Xsize 760
  659. END_OF_FILE
  660. if test 1106 -ne `wc -c <'kill20902.uu'`; then
  661.     echo shar: \"'kill20902.uu'\" unpacked with wrong size!
  662. fi
  663. # end of 'kill20902.uu'
  664. fi
  665. if test -f 'kill20903.uu' -a "${1}" != "-c" ; then 
  666.   echo shar: Will not clobber existing file \"'kill20903.uu'\"
  667. else
  668. echo shar: Extracting \"'kill20903.uu'\" \(1659 characters\)
  669. sed "s/^X//" >'kill20903.uu' <<'END_OF_FILE'
  670. Xbegin 666 kill2090.pal.info
  671. XMXQ```0`````!LP`,`"T`+``&``,``0##:&@`PVGH`````/____\`````````Z
  672. XM`````\,``````````````:,````!``````````````^@```````M`"L``@`"V
  673. XM)-`#```````````````````````````````````````'#QX\```-F;-F```(N
  674. XMD*%"````D*%".``!D+-"9``!$)Y"#``"$()"-``$$(1"1``,69AF9``/SS`\^
  675. XM.@````````````````````````````````#______^"``````""``````""`5
  676. XM`````"".`````""``````"".[N[N[B"``````"#______^#______^``````J
  677. XM`````````````````````````````````````````````````````````````
  678. XM`````````````````````````````````````````````````````````````
  679. XM`````````````````````````````````````````````````````````````
  680. XM`````````````````````````````````````````````````````````````
  681. XM``````````````````````````!______\!______\!______\!______\!_K
  682. XM_____\!Q$1$1$<!______\``````````````````````````````````````L
  683. XM`````````````````````````````````````````````````````````````
  684. XM`````````````````````````````````````````````"T`*P`"``(FV`,`=
  685. XM``````````````````````````````!^'/@````3"$P````1"$0````1"$0`S
  686. XM```3"$P````>"'@````2"$`````1"$`````1B$````!XW.``````````````%
  687. XM````````_@``````@@``````@@``````@@``````@@``````@@`````_@_@`"
  688. XM```@``@````@``@````@``@````@``@````_@_@`````@@``````@@``````>
  689. XM@@``````@@``````@@``````@@``````@@``````@@``````@@``````@@``0
  690. XM````@@``````@@``````@@``````_@``````````````````````````````$
  691. XM`````````````````````````````````````````````````````````````
  692. XM`````````````````````````````````````````````````````````````
  693. XM?```````?```````?```````?```````?```````?``````?__`````?__``$
  694. XM```?__`````?__``````?```````?```````?```````?```````?```````(
  695. XM?```````?```````?```````?```````?```````?```````?```````?```@
  696. X9````?```````````````````````````````\
  697. X``
  698. Xend
  699. Xsize 1150
  700. END_OF_FILE
  701. if test 1659 -ne `wc -c <'kill20903.uu'`; then
  702.     echo shar: \"'kill20903.uu'\" unpacked with wrong size!
  703. fi
  704. # end of 'kill20903.uu'
  705. fi
  706. if test -f 'reset.ntsc.uu' -a "${1}" != "-c" ; then 
  707.   echo shar: Will not clobber existing file \"'reset.ntsc.uu'\"
  708. else
  709. echo shar: Extracting \"'reset.ntsc.uu'\" \(1025 characters\)
  710. sed "s/^X//" >'reset.ntsc.uu' <<'END_OF_FILE'
  711. Xbegin 666 reset.ntsc
  712. XM```#\P`````````!``````````!```"30``#Z0```),L>0````0B?`````!.>
  713. XMKO[:*$`@+`"L9@``(D'L`%Q.KOZ`0>P`7$ZN_HPCP````6(C_`````$```%>%
  714. XM0_D```%F(#P`````+'D````$3J[]V"Q`('P`````(GP```%X)'P```&@)GP`[
  715. XM``&T(#P`````(CP`````)#P```',)CP````\3J[^I+"\`````&8``#HB3BQYY
  716. XM````!$ZN_F(@.0```5ZPO`````!G```6+'D````$3J[_?")Y```!8DZN_H8@_
  717. XM/`````!.=4ZY```!!BQY````!"I\````X$ZN_^(``"QY````!`@N``(!*6<`+
  718. XM``X``@C```.``F````(B?`````).<$[1+'D````$0?D```$P+4@`*D'N`"(PP
  719. XM/``6,CP``-)84<C__$9!/4$`4DYU,_P/B@#?\8`S_````-_QW"`\````"0AYQ
  720. XM``$`O^`!(CP``/__4<G__E'(_^Q.U0``````````:6YT=6ET:6]N+FQI8G)A6
  721. XM<GD```$```!&``8````````!R````8P``0```",`#P````````'M``````(!R
  722. XM````!``$`````````AP``````@$````$``0````````",P`````@4F5S970@I
  723. XM8GD@2B!$879I<RP@,#@M,3DY,"!V,2XP($Y44T,`06)O=70@=&\@:VEL;"!SJ
  724. XM>7-T96TL(&9I;FES:"!!3$P@9&ES:R!A8W1I=FET>0!';R!A:&5A9"P@;6%K>
  725. XM92!M>2!D87DA`$YO+"!)('=A<R!J=7-T(&MI9&1I;F<A``````/L````$```G
  726. XM```````L````-@```#P```!:````8````&8```">````N````,H```#6```!U
  727. X=#@```80```&(```!F````:P```'``````````_*>V
  728. X``
  729. Xend
  730. Xsize 704
  731. END_OF_FILE
  732. if test 1025 -ne `wc -c <'reset.ntsc.uu'`; then
  733.     echo shar: \"'reset.ntsc.uu'\" unpacked with wrong size!
  734. fi
  735. # end of 'reset.ntsc.uu'
  736. fi
  737. if test -f 'reset.ntsc0.uu' -a "${1}" != "-c" ; then 
  738.   echo shar: Will not clobber existing file \"'reset.ntsc0.uu'\"
  739. else
  740. echo shar: Extracting \"'reset.ntsc0.uu'\" \(534 characters\)
  741. sed "s/^X//" >'reset.ntsc0.uu' <<'END_OF_FILE'
  742. Xbegin 666 reset.ntsc.info
  743. XMXQ```0`````!N0"8`",`$0`%``,``0##7Y``````````````````````````U
  744. XM`````\,`PS4@`````````:D```"-``'D(`````````^@````+@%R`)?__P``_
  745. XM```"0`)_``%=!```````P!*`````````````6@`H_____P`!____Z0``````<
  746. XM`````",`$``"``'EX`,```````!__\````!_X<````!_X<````!_X<````!_;
  747. XM_\````````````````````/ZJ/````/U1'@```/JHC@```/5<1@```.J__@`4
  748. XM``-5__@```*K__@```/___@``````````/____^``/_____``/_____@`/__^
  749. XM___@`/_____@`/_____@`/_____@`/P']0_@`/P.ZH?@`/P=U4?@`/P[BJ?@1
  750. XD`/QW``?@`/SN``?@`,W<``?@`/P```?@``````````````$`?
  751. X``
  752. Xend
  753. Xsize 351
  754. END_OF_FILE
  755. if test 534 -ne `wc -c <'reset.ntsc0.uu'`; then
  756.     echo shar: \"'reset.ntsc0.uu'\" unpacked with wrong size!
  757. fi
  758. # end of 'reset.ntsc0.uu'
  759. fi
  760. if test -f 'reset.pal.uu' -a "${1}" != "-c" ; then 
  761.   echo shar: Will not clobber existing file \"'reset.pal.uu'\"
  762. else
  763. echo shar: Extracting \"'reset.pal.uu'\" \(1024 characters\)
  764. sed "s/^X//" >'reset.pal.uu' <<'END_OF_FILE'
  765. Xbegin 666 reset.pal
  766. XM```#\P`````````!``````````!```"30``#Z0```),L>0````0B?`````!.>
  767. XMKO[:*$`@+`"L9@``(D'L`%Q.KOZ`0>P`7$ZN_HPCP````6(C_`````$```%>%
  768. XM0_D```%F(#P`````+'D````$3J[]V"Q`('P`````(GP```%X)'P```&@)GP`[
  769. XM``&T(#P`````(CP`````)#P```',)CP````\3J[^I+"\`````&8``#HB3BQYY
  770. XM````!$ZN_F(@.0```5ZPO`````!G```6+'D````$3J[_?")Y```!8DZN_H8@_
  771. XM/`````!.=4ZY```!!BQY````!"I\````X$ZN_^(``"QY````!`@N``(!*6<`+
  772. XM``X``@C```.``F````(B?`````).<$[1+'D````$0?D```$P+4@`*D'N`"(PP
  773. XM/``6,CP``-)84<C__$9!/4$`4DYU,_P/B@#?\8`S_``@`-_QW"`\````"0AY1
  774. XM``$`O^`!(CP``/__4<G__E'(_^Q.U0``````````:6YT=6ET:6]N+FQI8G)A6
  775. XM<GD```$```!&``8````````!R````8P``0```",`#P````````'M``````(!R
  776. XM````!``$`````````AP``````@$````$``0````````",P`````@4F5S970@I
  777. XM8GD@2B!$879I<RP@,#@M,3DY,"!V,2XP(%!!3"``06)O=70@=&\@:VEL;"!SO
  778. XM>7-T96TL(&9I;FES:"!!3$P@9&ES:R!A8W1I=FET>0!';R!A:&5A9"P@;6%K>
  779. XM92!M>2!D87DA`$YO+"!)('=A<R!J=7-T(&MI9&1I;F<A``````/L````$```G
  780. XM```````L````-@```#P```!:````8````&8```">````N````,H```#6```!U
  781. X=#@```80```&(```!F````:P```'``````````_*>V
  782. X``
  783. Xend
  784. Xsize 704
  785. END_OF_FILE
  786. if test 1024 -ne `wc -c <'reset.pal.uu'`; then
  787.     echo shar: \"'reset.pal.uu'\" unpacked with wrong size!
  788. fi
  789. # end of 'reset.pal.uu'
  790. fi
  791. if test -f 'reset.pal0.uu' -a "${1}" != "-c" ; then 
  792.   echo shar: Will not clobber existing file \"'reset.pal0.uu'\"
  793. else
  794. echo shar: Extracting \"'reset.pal0.uu'\" \(533 characters\)
  795. sed "s/^X//" >'reset.pal0.uu' <<'END_OF_FILE'
  796. Xbegin 666 reset.pal.info
  797. XMXQ```0`````!MP!X`",`$0`%``,``0##.;``````````````````````````-
  798. XM`````\,`PS1X`````````:<```!M``'A0`````````^@````+@%R`)?__P``1
  799. XM```"0`)_``%=!```````P!*`````````````6@`H_____P`!____Z0``````<
  800. XM`````",`$``"``'C``,```````!__\````!_X<````!_X<````!_X<````!_Y
  801. XM_\````````````````````/ZJ/````/U1'@```/JHC@```/5<1@```.J__@`4
  802. XM``-5__@```*K__@```/___@``````````/____^``/_____``/_____@`/__^
  803. XM___@`/_____@`/_____@`/_____@`/P']0_@`/P.ZH?@`/P=U4?@`/P[BJ?@1
  804. XD`/QW``?@`/SN``?@`,W<``?@`/P```?@``````````````$`?
  805. X``
  806. Xend
  807. Xsize 351
  808. END_OF_FILE
  809. if test 533 -ne `wc -c <'reset.pal0.uu'`; then
  810.     echo shar: \"'reset.pal0.uu'\" unpacked with wrong size!
  811. fi
  812. # end of 'reset.pal0.uu'
  813. fi
  814. if test -f 'resetcode.txt' -a "${1}" != "-c" ; then 
  815.   echo shar: Will not clobber existing file \"'resetcode.txt'\"
  816. else
  817. echo shar: Extracting \"'resetcode.txt'\" \(7059 characters\)
  818. sed "s/^X//" >'resetcode.txt' <<'END_OF_FILE'
  819. XGroup: comp.sys.amiga.tech, Item 2342   (Current Item Range #2253 - #2365)
  820. XSubject: ColdReboot() - The Never Ending Story?
  821. XFrom: rbabel@babylon.UUCP (Ralph Babel)
  822. X
  823. XDate: 15 Aug 90 04:55:43 GMT
  824. X
  825. XBrief history:
  826. X
  827. XThe original "ColdReboot()" (new Amiga Hardware Reference
  828. XManual, page 219) didn't work on some (IMHO) broken A2000s
  829. X(Kickstart ROM doesn't reappear at location 0 after RESET).
  830. X
  831. XThe current version (AmigaMail March/April 1990) jumps
  832. Xdirectly into Kickstart and therefore doesn't co-operate
  833. Xwith boot-ROMs (not to be confused with Autoboot driver
  834. XROMs) that show up at location 0 after a software RESET
  835. X(e.g. it leaves the A1000's WCS write-enabled and does not
  836. Xwork with GVP's '030 boot-ROMs - dunno about A2620/A2630).
  837. XPresumably this bug also prevents the current versions of
  838. X"MMUKick" and "SetCPU ROMBOOT" from working with boot-ROMs.
  839. X
  840. XSo what about the following solution?
  841. X
  842. X------------------------ cut here ------------------------
  843. X
  844. X* This is Beer-Ware. If you find this program useful, you
  845. X* are morally obliged to buy me a drink at the next Amiga
  846. X* show or devcon. :-)
  847. X
  848. X        csect   "text",0,1,0,4
  849. X
  850. X        include "exec/types.i"
  851. X        include "exec/execbase.i"
  852. X
  853. XAbsExecBase             equ     4
  854. X_LVOSupervisor          equ     -30
  855. X_LVOColdReboot          equ     -726
  856. XLIBRARY_VERSION_2_0     equ     36
  857. X
  858. X_ColdReboot
  859. X        movea.l AbsExecBase.w,a6
  860. X        cmp.w   #LIBRARY_VERSION_2_0,LIB_VERSION(a6)
  861. X        blt.b   1$
  862. X        jmp     _LVOColdReboot(a6)
  863. X
  864. X1$      lea     2$(pc),a5
  865. X        jsr     _LVOSupervisor(a6)
  866. X
  867. X*
  868. X* in case our boot-ROM doesn't show up at location 0 ...
  869. X*
  870. X* romsize  equ     $00ffffec
  871. X* romend   equ     $01000000
  872. X*
  873. X* $000002: bra.b   $000008
  874. X* $000004: AbsExecBase
  875. X* $000008: lea     romend+4,a0
  876. X* $00000e: suba.l  romsize-(romend+4)(a0),a0
  877. X* $000012: movea.l (a0),a0
  878. X* $000014: subq.l  #2,a0
  879. X* $000016: jmp     (a0)
  880. X*
  881. X
  882. X2$      lea     (2).w,a0
  883. X        movea.l a0,a1
  884. X        move.w  #$6004,(a1)+
  885. X        addq.l  #4,a1
  886. X        move.l  #$41f90100,(a1)+
  887. X        move.l  #$000491e8,(a1)+
  888. X        move.l  #$ffe82050,(a1)+
  889. X        move.l  #$55884ed0,(a1)
  890. X
  891. X        btst.b  #AFB_68020,AttnFlags+1(a6)
  892. X        beq.b   3$
  893. X
  894. X        movec.l cacr,d0
  895. X        bset.l  #3,d0
  896. X        movec.l d0,cacr
  897. X
  898. X3$      cnop    0,4
  899. X        reset
  900. X        jmp     (a0)
  901. X
  902. X        end
  903. X
  904. X------------------------ cut here ------------------------
  905. X
  906. XRestrictions: Does not support '040 under pre-2.0; assumes
  907. Xall boot-ROMs have a JMP-$absolute at location 2; and the
  908. Xusual MMU restriction (turn off MMU before rebooting). Maybe
  909. XDave has a good idea on how to turn off the MMU without
  910. Xpulling the rug from under your own feet (SetCPU ROMBOOT)?
  911. X
  912. XComments appreciated,
  913. X
  914. XRalph Babel
  915. X
  916. X....!cbmvax!cbmehq!babylon!rbabel
  917. X
  918. X
  919. X
  920. X
  921. XGroup: comp.sys.amiga.tech, Item 2349   (Current Item Range #2253 - #2365)
  922. XSubject: Re: ColdReboot() - The Never Ending Story?
  923. XFrom: daveh@cbmvax.commodore.com (Dave Haynie), Commodore, West Chester, PA
  924. X
  925. XDate: 16 Aug 90 16:32:13 GMT
  926. X
  927. XIn article <03021.AA03021@babylon.UUCP> rbabel@babylon.UUCP (Ralph Babel) writes
  928. X
  929. X:
  930. X>Brief history:
  931. X
  932. X>The current version (AmigaMail March/April 1990) jumps
  933. X>directly into Kickstart and therefore doesn't co-operate
  934. X>with boot-ROMs (not to be confused with Autoboot driver
  935. X>ROMs) that show up at location 0 after a software RESET
  936. X>(e.g. it leaves the A1000's WCS write-enabled and does not
  937. X>work with GVP's '030 boot-ROMs - dunno about A2620/A2630).
  938. X>Presumably this bug also prevents the current versions of
  939. X>"MMUKick" and "SetCPU ROMBOOT" from working with boot-ROMs.
  940. X
  941. XI'm  not  sure  what the GVP boot ROMs actually do, but with the A2620 and
  942. XA2630,  these  ROMs  are  gone forever by the time you're into AmigaOS the
  943. Xfirst  time after a full system reset (eg, powerup, keyboard, or any other
  944. Xcondition  that yanks both RST* and HLT*).  Basically, after a full system
  945. Xreset,  the  A26x0 ROMs are mapped at 0 and a magic A26x0 control register
  946. Xis  mapped  into  the  $00e8xxxx space normally used for AUTOCONFIG units.
  947. XThis  magic control register is similar to, but not identical to, a normal
  948. XAUTOCONFIG  unit,  and  Exec  would  certainly  choke  on it.  The control
  949. Xregister  is  actually  at  $00e80040, and it can be written to repeatedly
  950. Xuntil  the  configuration bit in the register is set.  At that point, this
  951. Xmagic  control  register  goes  away,  normally until the next full-system
  952. Xreset.   It  is  replaced  at  $00e8xxxx by the configuration unit for the
  953. XA26x0  on-board  memory,  which  is  a  true AUTOCONFIG unit understood by
  954. Xexpansion.library and all.  Any CPU-generated RESET will bring you back to
  955. Xthis  state, but not back to the initial state where the magic register is
  956. Xaccessible or A26x0 ROMs are visible.
  957. X
  958. X>Maybe Dave has a good idea on how to turn off the MMU without
  959. X>pulling the rug from under your own feet (SetCPU ROMBOOT)?
  960. X
  961. XIf the MMU is on, make sure you're done running any OS code before you turn 
  962. Xit off.  That's about all you can do.  For SetCPU ROMBOOT, I do just this.
  963. XIf you're running under 2.0, SetCPU setfunctions its own reset routine, which
  964. Xwill [a] not live in emulated ROM at the time of reset, and [b] turn off the
  965. XMMU just prior to resetting.
  966. X
  967. X>Ralph Babel
  968. X
  969. X-- 
  970. XDave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests"
  971. X   {uunet|pyramid|rutgers}!cbmvax!daveh      PLINK: hazy     BIX: hazy
  972. X      Get that coffee outta my face, put a Margarita in its place!
  973. X
  974. X
  975. XGroup: comp.sys.amiga.tech, Item 2353   (Current Item Range #2253 - #2365)
  976. XSubject: Re: ColdReboot() - The Never Ending Story?
  977. XFrom: valentin@cbmvax.commodore.com (Valentin Pepelea), Commodore, West Chester,
  978. X
  979. XDate: 16 Aug 90 20:43:59 GMT
  980. X
  981. XIn article <03021.AA03021@babylon.UUCP> rbabel@babylon.UUCP (Ralph Babel)
  982. Xwrites:
  983. X>
  984. X> The original "ColdReboot()" (new Amiga Hardware Reference Manual, page 219)
  985. X> didn't work on some (IMHO) broken A2000s (Kickstart ROM doesn't reappear at
  986. X> location 0 after RESET).
  987. X>
  988. X> (e.g. it leaves the A1000's WCS write-enabled and does not work with GVP's
  989. X> '030 boot-ROMs - dunno about A2620/A2630). Presumably this bug also prevents
  990. X> the current versions of "MMUKick" and "SetCPU ROMBOOT" from working with
  991. X> boot-ROMs.
  992. X
  993. XI'm  not  sure  what you are talking about here.  I wrote MMUkick with the
  994. Xspecific purpose to allow GVP accelerator owners to boot OS 2.0 kickfiles.
  995. XI even had to help GVP find out why initially, MMUkick would not work.  To
  996. Xfix  that  they  had  to  replace  their PALs with new ones which properly
  997. Xpropagate  the *RESET signal from the CPU to external devices, and did not
  998. Xinhibit the cache for CPU fetches from chip memory.
  999. X
  1000. X> So what about the following solution?
  1001. X
  1002. XSelf modifying code is dangerous to your health. In this case, remember to
  1003. XDisable() all interrupts before entering the critical region.
  1004. X
  1005. XValentin
  1006. X-- 
  1007. XThe Goddess of democracy? "The tyrants     Name:    Valentin Pepelea
  1008. Xmay distroy a statue,  but they cannot     Phone:   (215) 431-9327
  1009. Xkill a god."                               UseNet:  cbmvax!valentin@uunet.uu.net
  1010. X
  1011. X             - Ancient Chinese Proverb     Claimer: I not Commodore spokesman be
  1012. X
  1013. END_OF_FILE
  1014. if test 7059 -ne `wc -c <'resetcode.txt'`; then
  1015.     echo shar: \"'resetcode.txt'\" unpacked with wrong size!
  1016. fi
  1017. # end of 'resetcode.txt'
  1018. fi
  1019. if test -f 'resetcode.uu' -a "${1}" != "-c" ; then 
  1020.   echo shar: Will not clobber existing file \"'resetcode.uu'\"
  1021. else
  1022. echo shar: Extracting \"'resetcode.uu'\" \(541 characters\)
  1023. sed "s/^X//" >'resetcode.uu' <<'END_OF_FILE'
  1024. Xbegin 666 resetcode.txt.info
  1025. XMXQ```0``````_P"4`"``'``%``,``0#`?7``````````````````````````Y
  1026. XM````!,,`P%+@`,![J(````"````````````````````````````@`!P``@`!;
  1027. XM9<`#````````````!___^`?___@&$)(8!S.3.`<PQS@',Y,X!S"3.`?___@$E
  1028. XM```(!___^`?_?[@'_O-X!_S-.`?Z,M@'_W^X!][S>`<DS3@/FC+8#WO]^`[WY
  1029. XMF_@9)FGX'-&6^#____A____X#___^````````````````````````````>]MZ
  1030. XMY@#,;,8`SSC&`,QLQ@#/;,8````&`___]@````8``(!&``$,A@`#,L8`!<TF_
  1031. XM``"`1@`A#(8`VS+&`&7-+@"$`@X!"&0.!MF6'@,N:1X````^````_@____X#0
  1032. XG___^``````````9C.F-E9``````(````#D9)3$5465!%/51E>'0`E
  1033. X``
  1034. Xend
  1035. Xsize 354
  1036. END_OF_FILE
  1037. if test 541 -ne `wc -c <'resetcode.uu'`; then
  1038.     echo shar: \"'resetcode.uu'\" unpacked with wrong size!
  1039. fi
  1040. # end of 'resetcode.uu'
  1041. fi
  1042. echo shar: End of archive 1 \(of 1\).
  1043. cp /dev/null ark1isdone
  1044. MISSING=""
  1045. for I in 1 ; do
  1046.     if test ! -f ark${I}isdone ; then
  1047.     MISSING="${MISSING} ${I}"
  1048.     fi
  1049. done
  1050. if test "${MISSING}" = "" ; then
  1051.     echo You have the archive.
  1052.     rm -f ark[1-9]isdone
  1053. else
  1054.     echo You still need to unpack the following archives:
  1055.     echo "        " ${MISSING}
  1056. fi
  1057. ##  End of shell archive.
  1058. exit 0
  1059. -- 
  1060. Mail submissions (sources or binaries) to <amiga@uunet.uu.net>.
  1061. Mail comments to the moderator at <amiga-request@uunet.uu.net>.
  1062. Post requests for sources, and general discussion to comp.sys.amiga.
  1063.